﻿#pragma once

#include "MirButton.h"
#include "MirLabel.h"
#include <string>
#include <any>

using namespace Client::MirSounds;

namespace Client::MirControls
{
    class MirCheckBox : public MirButton
    {

        #pragma region TickedIndex
    private:
        int _tickedIndex = 0;
    public:
        virtual ~MirCheckBox()
        {
            delete _label;
        }

        int getTickedIndex() const;
        void setTickedIndex(int value);
        #pragma endregion

        #pragma region UnTickedIndex
    private:
        int _untickedIndex = 0;
    public:
        int getUnTickedIndex() const;
        void setUnTickedIndex(int value);
        #pragma endregion

        #pragma region Checked
    private:
        bool _checked = false;
    public:
        bool getChecked() const;
        void setChecked(bool value);
        #pragma endregion

        #pragma region Label
    private:
        MirLabel *_label;
        #pragma endregion

        #pragma region CenterText
        bool _center = false;
    public:
        bool getCenterLabelText() const;
        void setCenterLabelText(bool value);
        #pragma endregion

        #pragma region LabelText
        void setLabelText(const std::string &value);
        #pragma endregion

        MirCheckBox();

    private:
        void MirCheckBox_Click(std::any sender, EventArgs *e);
    };
}
